#include "ZControlFactory.h"
#include <assert.h>

namespace ZuiLib
{

ZControlFactoryMgr::ZControlFactoryMgr(void)
{

}


ZControlFactoryMgr::~ZControlFactoryMgr(void)
{
}

void ZControlFactoryMgr::AddFactory(const char* name, CreateControlFunc func)
{
	assert(m_map.Find(name)==NULL);
	m_map.Set(name, (void*)func);
}

void ZControlFactoryMgr::RemoveFactory(const char* name)
{
	m_map.Remove(name);
}

ZControl* ZControlFactoryMgr::BuildControl(const char* name)
{
	CreateControlFunc func = (CreateControlFunc)m_map.Find(name);
	if (func)
		return func();
	else
		return NULL;
}

}
